﻿// Decompiled with JetBrains decompiler
// Type: UnityEngine.SystemInfoShimBase
// Assembly: UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: E6AE6B5A-2752-4B07-9528-C8B77C62CE79
// Assembly location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll
// XML documentation location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.xml

using System;
using UnityEngine.Experimental.Rendering;
using UnityEngine.Rendering;

#nullable disable
namespace UnityEngine
{
  internal class SystemInfoShimBase
  {
    public virtual string unsupportedIdentifier => "n/a";

    public virtual float batteryLevel => SystemInfo.batteryLevel;

    public virtual BatteryStatus batteryStatus => SystemInfo.batteryStatus;

    public virtual string operatingSystem => SystemInfo.operatingSystem;

    public virtual OperatingSystemFamily operatingSystemFamily => SystemInfo.operatingSystemFamily;

    public virtual string processorType => SystemInfo.processorType;

    public virtual int processorFrequency => SystemInfo.processorFrequency;

    public virtual int processorCount => SystemInfo.processorCount;

    public virtual int systemMemorySize => SystemInfo.systemMemorySize;

    public virtual string deviceUniqueIdentifier => SystemInfo.deviceUniqueIdentifier;

    public virtual string deviceName => SystemInfo.deviceName;

    public virtual string deviceModel => SystemInfo.deviceModel;

    public virtual bool supportsAccelerometer => SystemInfo.supportsAccelerometer;

    public virtual bool supportsGyroscope => SystemInfo.supportsGyroscope;

    public virtual bool supportsLocationService => SystemInfo.supportsLocationService;

    public virtual bool supportsVibration => SystemInfo.supportsVibration;

    public virtual bool supportsAudio => SystemInfo.supportsAudio;

    public virtual DeviceType deviceType => SystemInfo.deviceType;

    public virtual int graphicsMemorySize => SystemInfo.graphicsMemorySize;

    public virtual string graphicsDeviceName => SystemInfo.graphicsDeviceName;

    public virtual string graphicsDeviceVendor => SystemInfo.graphicsDeviceVendor;

    public virtual int graphicsDeviceID => SystemInfo.graphicsDeviceID;

    public virtual int graphicsDeviceVendorID => SystemInfo.graphicsDeviceVendorID;

    public virtual GraphicsDeviceType graphicsDeviceType => SystemInfo.graphicsDeviceType;

    public virtual bool graphicsUVStartsAtTop => SystemInfo.graphicsUVStartsAtTop;

    public virtual string graphicsDeviceVersion => SystemInfo.graphicsDeviceVersion;

    public virtual int graphicsShaderLevel => SystemInfo.graphicsShaderLevel;

    public virtual bool graphicsMultiThreaded => SystemInfo.graphicsMultiThreaded;

    public virtual RenderingThreadingMode renderingThreadingMode
    {
      get => SystemInfo.renderingThreadingMode;
    }

    public virtual bool hasHiddenSurfaceRemovalOnGPU => SystemInfo.hasHiddenSurfaceRemovalOnGPU;

    public virtual bool hasDynamicUniformArrayIndexingInFragmentShaders
    {
      get => SystemInfo.hasDynamicUniformArrayIndexingInFragmentShaders;
    }

    public virtual bool supportsShadows => SystemInfo.supportsShadows;

    public virtual bool supportsRawShadowDepthSampling => SystemInfo.supportsRawShadowDepthSampling;

    public virtual bool supportsMotionVectors => SystemInfo.supportsMotionVectors;

    public virtual bool supports3DTextures => SystemInfo.supports3DTextures;

    public virtual bool supportsCompressed3DTextures => SystemInfo.supportsCompressed3DTextures;

    public virtual bool supports2DArrayTextures => SystemInfo.supports2DArrayTextures;

    public virtual bool supports3DRenderTextures => SystemInfo.supports3DRenderTextures;

    public virtual bool supportsCubemapArrayTextures => SystemInfo.supportsCubemapArrayTextures;

    public virtual bool supportsAnisotropicFilter => SystemInfo.supportsAnisotropicFilter;

    public virtual CopyTextureSupport copyTextureSupport => SystemInfo.copyTextureSupport;

    public virtual bool supportsComputeShaders => SystemInfo.supportsComputeShaders;

    public virtual bool supportsGeometryShaders => SystemInfo.supportsGeometryShaders;

    public virtual bool supportsTessellationShaders => SystemInfo.supportsTessellationShaders;

    public virtual bool supportsRenderTargetArrayIndexFromVertexShader
    {
      get => SystemInfo.supportsRenderTargetArrayIndexFromVertexShader;
    }

    public virtual bool supportsInstancing => SystemInfo.supportsInstancing;

    public virtual bool supportsHardwareQuadTopology => SystemInfo.supportsHardwareQuadTopology;

    public virtual bool supports32bitsIndexBuffer => SystemInfo.supports32bitsIndexBuffer;

    public virtual bool supportsSparseTextures => SystemInfo.supportsSparseTextures;

    public virtual int supportedRenderTargetCount => SystemInfo.supportedRenderTargetCount;

    public virtual bool supportsSeparatedRenderTargetsBlend
    {
      get => SystemInfo.supportsSeparatedRenderTargetsBlend;
    }

    public virtual int supportedRandomWriteTargetCount
    {
      get => SystemInfo.supportedRandomWriteTargetCount;
    }

    public virtual int supportsMultisampledTextures => SystemInfo.supportsMultisampledTextures;

    public virtual bool supportsMultisampled2DArrayTextures
    {
      get => SystemInfo.supportsMultisampled2DArrayTextures;
    }

    public virtual bool supportsMultisampleAutoResolve => SystemInfo.supportsMultisampleAutoResolve;

    public virtual int supportsTextureWrapMirrorOnce => SystemInfo.supportsTextureWrapMirrorOnce;

    public virtual bool usesReversedZBuffer => SystemInfo.usesReversedZBuffer;

    public virtual bool SupportsRenderTextureFormat(RenderTextureFormat format)
    {
      return SystemInfo.SupportsRenderTextureFormat(format);
    }

    public virtual bool SupportsBlendingOnRenderTextureFormat(RenderTextureFormat format)
    {
      return SystemInfo.SupportsBlendingOnRenderTextureFormat(format);
    }

    public virtual bool SupportsRandomWriteOnRenderTextureFormat(RenderTextureFormat format)
    {
      return SystemInfo.SupportsRandomWriteOnRenderTextureFormat(format);
    }

    public virtual bool SupportsTextureFormat(TextureFormat format)
    {
      return SystemInfo.SupportsTextureFormat(format);
    }

    public virtual bool SupportsVertexAttributeFormat(VertexAttributeFormat format, int dimension)
    {
      return SystemInfo.SupportsVertexAttributeFormat(format, dimension);
    }

    public virtual NPOTSupport npotSupport => SystemInfo.npotSupport;

    public virtual int maxTextureSize => SystemInfo.maxTextureSize;

    public virtual int maxTexture3DSize => SystemInfo.maxTexture3DSize;

    public virtual int maxTextureArraySlices => SystemInfo.maxTextureArraySlices;

    public virtual int maxCubemapSize => SystemInfo.maxCubemapSize;

    public virtual int maxAnisotropyLevel => SystemInfo.maxAnisotropyLevel;

    public virtual int maxComputeBufferInputsVertex => SystemInfo.maxComputeBufferInputsVertex;

    public virtual int maxComputeBufferInputsFragment => SystemInfo.maxComputeBufferInputsFragment;

    public virtual int maxComputeBufferInputsGeometry => SystemInfo.maxComputeBufferInputsGeometry;

    public virtual int maxComputeBufferInputsDomain => SystemInfo.maxComputeBufferInputsDomain;

    public virtual int maxComputeBufferInputsHull => SystemInfo.maxComputeBufferInputsHull;

    public virtual int maxComputeBufferInputsCompute => SystemInfo.maxComputeBufferInputsCompute;

    public virtual int maxComputeWorkGroupSize => SystemInfo.maxComputeWorkGroupSize;

    public virtual int maxComputeWorkGroupSizeX => SystemInfo.maxComputeWorkGroupSizeX;

    public virtual int maxComputeWorkGroupSizeY => SystemInfo.maxComputeWorkGroupSizeY;

    public virtual int maxComputeWorkGroupSizeZ => SystemInfo.maxComputeWorkGroupSizeZ;

    public virtual int computeSubGroupSize => SystemInfo.computeSubGroupSize;

    public virtual bool supportsAsyncCompute => SystemInfo.supportsAsyncCompute;

    public virtual bool supportsGpuRecorder => SystemInfo.supportsGpuRecorder;

    public virtual bool supportsGraphicsFence => SystemInfo.supportsGraphicsFence;

    public virtual bool supportsAsyncGPUReadback => SystemInfo.supportsAsyncGPUReadback;

    public virtual bool supportsRayTracing => SystemInfo.supportsRayTracing;

    public virtual bool supportsSetConstantBuffer => SystemInfo.supportsSetConstantBuffer;

    public virtual int constantBufferOffsetAlignment => SystemInfo.constantBufferOffsetAlignment;

    public virtual long maxGraphicsBufferSize => SystemInfo.maxGraphicsBufferSize;

    [Obsolete("Use SystemInfo.constantBufferOffsetAlignment instead.")]
    public virtual bool minConstantBufferOffsetAlignment
    {
      get => SystemInfo.minConstantBufferOffsetAlignment;
    }

    public virtual bool hasMipMaxLevel => SystemInfo.hasMipMaxLevel;

    public virtual bool supportsMipStreaming => SystemInfo.supportsMipStreaming;

    public virtual bool usesLoadStoreActions => SystemInfo.usesLoadStoreActions;

    public virtual HDRDisplaySupportFlags hdrDisplaySupportFlags
    {
      get => SystemInfo.hdrDisplaySupportFlags;
    }

    public virtual bool supportsConservativeRaster => SystemInfo.supportsConservativeRaster;

    public virtual bool supportsMultiview => SystemInfo.supportsMultiview;

    public virtual bool supportsStoreAndResolveAction => SystemInfo.supportsStoreAndResolveAction;

    public virtual bool supportsMultisampleResolveDepth
    {
      get => SystemInfo.supportsMultisampleResolveDepth;
    }

    public virtual bool IsFormatSupported(GraphicsFormat format, FormatUsage usage)
    {
      return SystemInfo.IsFormatSupported(format, usage);
    }

    public virtual GraphicsFormat GetCompatibleFormat(GraphicsFormat format, FormatUsage usage)
    {
      return SystemInfo.GetCompatibleFormat(format, usage);
    }

    public virtual GraphicsFormat GetGraphicsFormat(DefaultFormat format)
    {
      return SystemInfo.GetGraphicsFormat(format);
    }

    public virtual int GetRenderTextureSupportedMSAASampleCount(RenderTextureDescriptor desc)
    {
      return SystemInfo.GetRenderTextureSupportedMSAASampleCount(desc);
    }
  }
}
